<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui"
	template="/templates/template.xhtml">

	<f:metadata>
		<f:event type="preRenderView" listener="#{produtoBean.verificarAcesso}" />
	</f:metadata>

	<ui:define name="body">
		<h:form id="form" prependId="false">
			<p:fieldset legend="#{produtoBean.qualifiedName}" id="fieldPrincipal">
				<h:panelGrid columns="4" id="panelCadastro" border="1" columnClasses="coluna15,coluna30,coluna20,coluna45"
					width="100%">

					<h:outputLabel value="Descrição:" styleClass="icoObrigatorio" />
					<p:inputText value="#{produtoBean.model.descricao}" id="desc" size="50" maxlength="255"
						requiredMessage="#{produtoBean.requiredMessage}" required="true" />
					<p:message for="desc" />
					<h:outputText value=" " />

					<h:outputLabel value="Categoria:" styleClass="icoObrigatorio" />
					<p:selectOneMenu id="idCat" effect="fade" style="width:300px;" value="#{produtoBean.idCategoria}"
						requiredMessage="#{produtoBean.requiredMessage}" required="true">
						<f:selectItem itemLabel="Selecione" itemValue="" />
						<f:selectItems value="#{produtoBean.listaCategoria}" />
					</p:selectOneMenu>
					<p:message for="idCat" />
					<h:outputText value=" " />

					<h:outputLabel value="Unidade de medida:" styleClass="icoObrigatorio" />
					<p:selectOneMenu id="idUni" effect="fade" style="width:300px;" value="#{produtoBean.idUnidade}"
						requiredMessage="#{produtoBean.requiredMessage}" required="true">
						<f:selectItem itemLabel="Selecione" itemValue="" />
						<f:selectItems value="#{produtoBean.listaUnidade}" />
					</p:selectOneMenu>
					<p:message for="idUni" />
					<h:outputText value=" " />


					<h:outputLabel value="Peso:" styleClass="icoObrigatorio" />
					<p:inputText value="#{produtoBean.model.pesoToString}" id="idPeso" size="20" maxlength="7"
						requiredMessage="#{produtoBean.requiredMessage}" required="true" />
					<p:message for="idPeso" />
					<h:outputText value=" " />

					<h:outputLabel value="Qtd Minima:" styleClass="icoObrigatorio" />
					<p:inputText value="#{produtoBean.model.qtdMinimaToString}" id="qtdMin" size="20" maxlength="7"
						requiredMessage="#{produtoBean.requiredMessage}" required="true" />
					<p:message for="qtdMin" />
					<h:outputText value=" " />


					<h:outputLabel value="Controlado?" styleClass="icoObrigatorio" />
					<p:selectOneRadio id="optControlado" value="#{produtoBean.controlado}"
						requiredMessage="#{produtoBean.requiredMessage}" required="true">
						<f:selectItem itemLabel="Sim" itemValue="1" />
						<f:selectItem itemLabel="Não" itemValue="2" />
					</p:selectOneRadio>
					<p:message for="optControlado" />
					<h:outputText value=" " />


				</h:panelGrid>
				<br />
				<p:toolbar>
					<p:toolbarGroup align="left">
						<p:commandButton value="Limpar" immediate="true" ajax="false" action="produto.jsf" />
						<p:commandButton rendered="#{p:ifGranted('ROLE_PRODUTO_SALVAR')}" value="Salvar" ajax="true" process="@form"
							update="@form" action="#{produtoBean.save}" />
					</p:toolbarGroup>
				</p:toolbar>
				<br />
				<p:dataTable var="lista" id="listaProduto" emptyMessage="#{produtoBean.emptyMessage}" update="listaProduto"
					rowsPerPageTemplate="#{produtoBean.paginacao}" styleClass="coluna100" value="#{produtoBean.lazyDataModel}"
					paginator="true" rows="5" rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? 'linhaImpar' : 'linhaPar'}"
					rowIndexVar="rowIx">

					<p:column headerText="Descrição" sortBy="#{lista.descricao}" filterBy="#{lista.descricao}" style="width:20%">
						<h:outputLabel value="#{lista.descricao}" />
					</p:column>
					<p:column headerText="Categoria" sortBy="#{lista.categoria.descricao}" filterBy="#{lista.categoria.descricao}"
						style="width:20%">
						<h:outputLabel value="#{lista.categoria.descricao}" />
					</p:column>
					<p:column headerText="Unidade" sortBy="#{lista.unidadeMedida.descricao}"
						filterBy="#{lista.unidadeMedida.descricao}" style="width:20%">
						<h:outputLabel value="#{lista.unidadeMedida.descricao}" />
					</p:column>
					<p:column headerText="Qtd Minima" sortBy="#{lista.qtdMinima}" style="width:15%">
						<h:outputLabel value="#{lista.qtdMinima}" />
					</p:column>
					<p:column headerText="Controlado" sortBy="#{lista.controlado}" style="width:15%">
						<h:outputLabel value="#{lista.controladoFormat}" />
					</p:column>
					<p:column headerText="Ações" style="width:10%;text-align:center;">
						<p:commandLink rendered="#{p:ifGranted('ROLE_PRODUTO_EDITAR')}" title="Editar" style="padding:5px !important;"
							update=":form:panelCadastro" process="@this" action="#{produtoBean.load}">
							<h:graphicImage library="design/imagem" name="icone-editar.png" />
							<f:setPropertyActionListener target="#{produtoBean.model}" value="#{lista}" />
						</p:commandLink>
						<p:commandLink rendered="#{p:ifGranted('ROLE_PRODUTO_EXCLUIR')}" title="Excluir" process="@this"
							oncomplete="confirmation.show()">
							<h:graphicImage library="design/imagem" name="icone-excluir.png" />
							<f:setPropertyActionListener target="#{produtoBean.model}" value="#{lista}" />
						</p:commandLink>
					</p:column>
				</p:dataTable>
			</p:fieldset>

			<p:confirmDialog appendToBody="true" message="Confirma a Exclusão" header="Exclusão" severity="alert"
				widgetVar="confirmation">
				<h:panelGrid columns="2">
					<p:commandButton value="Sim" update="listaProduto" oncomplete="confirmation.hide()"
						actionListener="#{produtoBean.delete}" immediate="true" />
					<p:commandButton value="Não" onclick="confirmation.hide()" />
				</h:panelGrid>
			</p:confirmDialog>
		</h:form>
	</ui:define>
</ui:composition>